package com.ruoyi.fin.util;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.List;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.ruoyi.common.config.RuoYiConfig;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.file.FileUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;

/**
 * 自定义Excel导出工具类
 * 
 * @author ruoyi
 */
public class CustomExcelUtil<T> extends ExcelUtil<T>
{
    private static final Logger log = LoggerFactory.getLogger(CustomExcelUtil.class);

    public CustomExcelUtil(Class<T> clazz)
    {
        super(clazz);
    }

    /**
     * 导出Excel到文件
     * 
     * @param list 导出数据集合
     * @param sheetName 工作表的名称
     * @param fileName 文件名
     * @return 文件名
     */
    public String exportExcelToFile(List<T> list, String sheetName, String fileName)
    {
        try
        {
            // 使用父类的导出方法
            AjaxResult result = exportExcel(list, sheetName);
            
            // 获取生成的文件名
            String downloadFileName = (String) result.get(AjaxResult.MSG_TAG);
            
            // 返回文件名
            return downloadFileName;
        }
        catch (Exception e)
        {
            log.error("导出Excel异常{}", e.getMessage());
            return null;
        }
    }
} 